const app = getApp();
const util = require('../../../utils/util.js');
const api = require('../../../config/api.js');
Page({
  data: {
    StatusBar: app.globalData.StatusBar,
    CustomBar: app.globalData.CustomBar,
    logo:'/static/settings/logo.png',
    scrollTop:150,
    sort: [{
      label: '默认排序',
      value: 'updateTime',
      order:'desc',
    },
    {
      label: '公司中文名称',
      value: 'companyNamePy',
      order: 'asc',
    },
    {
      label: '公司英文名称',
      value: 'companyNameEnPy',
      order: 'asc',
    },
    {
      label: '展位号',
      value: 'standNo',
      order: 'asc',
    },
    ],
    sortIndex: 0,
    productTypeData: [], //元数据
    productTypes: [], //级联数据
    productTypeIndex: [0, 0],
    searchForm: {
      pageNumber: 1, // 当前页数
      pageSize: 10, // 页面大小
      sort: 'updateTime',
      order: 'desc',
      key: '', //关键字 展商公司名称、展位号
      productTypeId: "", //产品类别 数组形式传递
    },
    totalPages: 0,
    loading: false, //是否正在加载数据
    list: [],
    collectData: [],//收藏的展商id数组

  },
  //监听页面滚动事件
  onPageScroll(res){
    //console.log(res)
  },
  //返回顶部
  goScrolltop: function (e) {
    if (wx.pageScrollTo) {
      wx.pageScrollTo({
        scrollTop: 0
      })
    } 
  },
  //当前页发生改变
  changePage(v) {
    this.setData({
      'searchForm.pageNumber': v
    });
    this.getExhibitorData();
  },
  //查询方法
  handleSearch() {
    this.setData({
      'searchForm.pageNumber': 1
    });
    this.goScrolltop();
    this.getExhibitorData();
  },
  //获取展商数据
  getExhibitorData: function () {
    let that = this;
    that.setData({
      loading: true
    })
    //加载信息
    util.request(api.EXHIBITOR_LIST, that.data.searchForm).then(function (res) {
      if (res.success === true) {
        let data = new Object();
        let list = [];
        if (that.data.searchForm.pageNumber > 1) { //加载更多  追加信息
          list = that.data.list;
        }
        list.push(...res.result.content)
        data.list = list;
        data.totalPages = res.result.totalPages;
        data.loading = false;
        that.setData(data);
      }
    });

  },
  //key输入监听事件
  keyInput: function (e) {
    this.setData({
      'searchForm.key': e.detail.value
    });
  },
  // 产品类别下拉选择
  changeProductType: function (e) {
    let data = this.data.productTypes;
    // let col0 = data[0][e.detail.value[0]];
    let col1 = data[1][e.detail.value[1]];
    this.setData({
      'searchForm.productTypeId': col1.id,
      'productTypeIndex': e.detail.value
    })
    this.handleSearch();
  },
  changeColumnProductType(e) {
    if (e.detail.column === 0) { //修改第一列
      let data = this.data.productTypeData;
      let children = data[e.detail.value].children;
      let arrs = []
      //如果子集有数据
      if (children) {

        children.forEach((item, index) => {
          arrs.push({
            id: item.id,
            title: item.nameCn
          });
        });

      } else {
        //如果子集没有数据
        arrs.push({
          id: '',
          title: '全部分类'
        })
      }
      let kk = this.data.productTypes;
      kk[1] = arrs
      this.setData({
        productTypes: kk
      })
    }
  },
  //收藏/取消收藏
  collect: function (e) {
    let id = e.currentTarget.dataset.id;
    let that = this;
    let arr = that.data.collectData;
    let index = arr.findIndex(item => item === id);
    if (index === -1) {
      //不存在 ---收藏
      arr.push(id)
      util.request(api.EXHIBITOR_COLLECT + '/' + id).then(function (res) {

      });
    } else {
      //存在  ---取消收藏
      arr.splice(index, 1)
      util.request(api.EXHIBITOR_COLLECT_CANCEL + '/' + id).then(function (res) {

      });
    }
    that.setData({
      'collectData': arr
    })
  },
  //获取用户收藏信息
  getCollect() {
    let that = this;
    util.request(api.EXHIBITOR_GET_COLLECT).then(function (res) {
      if (res.success === true) {
        let data = new Object();
        data.collectData = res.result;
        that.setData(data);
      }
    });
  },
  // 排序下拉选择
  changeSort: function (e) {
    let that = this;
    that.setData({
      'sortIndex': e.detail.value,
      'searchForm.sort': that.data.sort[e.detail.value].value,
      'searchForm.order': that.data.sort[e.detail.value].order
    });
    that.handleSearch();
  },
  //初始化产品类别信息
  getProductTypes: function () {
    let that = this;
    var data = new Object();
    //产品类别列表
    util.request(api.PRODUCT_TYPE_LIST).then(function (res) {
      if (res.success === true) {
        let arr = [
          [],
          []
        ];
        let result = res.result;
        result.unshift({
          id: '',
          nameCn: '全部分类'
        })
        let productTypeIndex = [0, 0];//产品类别默认选中项
        let productOneId = that.data.productOneId;//产品页面传递过来的参数
        let productTwoId = that.data.productTwoId;//产品页面传递过来的参数
        result.forEach((item, index) => {
          arr[0].push({
            id: item.id,
            title: item.nameCn
          });
          if (productOneId && productOneId.length > 0 && productOneId==item.id) {//如果上级页面传递了参数 
            productTypeIndex[0] = index;
            //如果子集有数据
            if (item.children) {
              item.children.forEach((item, index) => {
                arr[1].push({ id: item.id, title: item.nameCn });
                if (item.id === productTwoId) {//耳机id
                 
                  productTypeIndex[1] = index;
                }
              });
            }
          }

        });
        if (arr[1].length === 0) {
          arr[1].push({ id: '', title: '全部分类' });
        }
        data.productTypes = arr; //级联数据
        data.productTypeData = result; //元数据
        data.productTypeIndex = productTypeIndex;
        that.setData(data);
      }
    });
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    if (options.productOneId && options.productTwoId) { //接收由产品类别页面传递过来的参数
        this.setData({
          'searchForm.productTypeId': options.productTwoId,
          'productOneId': options.productOneId,
          'productTwoId': options.productTwoId,
        });
      }
    //加载
    this.getExhibitorData();
    //加载产品类别
    this.getProductTypes();
  },
  //展示详情
  goDetail(e) {
    wx.navigateTo({
      url: '/pages/exhibitor/exhibitor-detail/index?id=' + e.currentTarget.dataset.id,
    });
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getCollect();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    this.changePage(++this.data.searchForm.pageNumber);
  },
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})